Binary Heap
Binary heap
içerisinde barındırdığı elementleri düşük derecede organize tutan bir koleksiyondur. En büyük veri her zaman en öne gelmektedir. Bu yapılar ile en çok üç method kullanılmaktadır. Bunlar:
push
pop
peak
Olmaktadır.
Kodumuza binary heap değerlerini bir kütüphane gibi dahil ederek başlamaktayız.
use std::collections::BinaryHeap;
Sonrasında binaryheapim
adında mutable bir heap oluşturabiliriz.
let mut binaryheapim = BinaryHeap::new();
Diğer koleksiyonlarda yaptığımız gibi bu koleksiyona da veriyi .push()
ile gönderebiliriz.
binaryheapim.push(2);
binaryheapim.push(5);
binaryheapim.push(15);
binaryheapim.push(7);
binaryheapim.push(28);
Heap
'imizin içerisine veri ekledikten sonra bu kolektifimizi yazdırabiliriz. Burada dikkat etmemiz gereken şey her nasıl eklersek ekleyelim en büyük değerin her zaman en başa geleceğidir.
println!("{:?}",binaryheapim); //[28, 15, 5, 2, 7]
Diğer methodları incelediğimizde aynı şekilde en büyük değerin başta olma kuralının uygulandığını görüntüleyebiliriz.
binaryheapim.pop();
println!("{:?}",binaryheapim); // [15, 7, 5, 2]
binaryheapim.push(17);
binaryheapim.push(9);
println!("{:?}",binaryheapim); // [17, 15, 9, 2, 7, 5]
Heap
içerisinden istediğimiz veriye erişirken vektörlerdeki pop()
methoduna benzer şekilde .peek()
methodunu kullanabilirim. Burada dikkat etmemiz gereken şey pop
methodunun zirvedeki değeri siliyor olması durumunda .peek()
in silmeden gösteriyor olduğudur.
println!("{:?}",binaryheapim.peek()); // Some(17)
Heap'in boş olması durumu için normal i32 yerine Some(i32) döndürecektir.